package dao.JPA;

import javax.persistence.EntityManager;

import dao.JPAFactoryDAO;
import bean.ClassificacaoEtaria;
import interfaces.ClassificacaoEtariaInt;

/**
 * 
 * @author Daniel Rodrigues
 */
public class JPAClassificacaoEtariaDAO implements ClassificacaoEtariaInt {

	@Override
	public void inserir(ClassificacaoEtaria classificacao) {
		EntityManager em = JPAFactoryDAO.getInstance().getFactory()
				.createEntityManager();
		try {
			em.getTransaction().begin();
			em.persist(classificacao);
			em.getTransaction().commit();
		} catch (Exception e) {
			System.err.println(e.getMessage());
		} finally {
			em.close();
		}
	}

	@Override
	public void alterar(ClassificacaoEtaria classificacao) {
		EntityManager em = JPAFactoryDAO.getInstance().getFactory()
				.createEntityManager();
		try {
			em.getTransaction().begin();
			em.merge(classificacao);
			em.getTransaction().commit();
		} catch (Exception e) {
			System.err.println(e.getMessage());
		} finally {
			em.close();
		}

	}

	@Override
	public void deletar(ClassificacaoEtaria classificacao) {
		EntityManager em = JPAFactoryDAO.getInstance().getFactory()
				.createEntityManager();
		try {
			em.remove(classificacao);
		} catch (Exception e) {
			System.err.println(e.getMessage());
		} finally {
			em.close();
		}

	}

	@Override
	public ClassificacaoEtaria consultar(long id) {
		EntityManager em = JPAFactoryDAO.getInstance().getFactory()
				.createEntityManager();
		ClassificacaoEtaria classificacao = null;
		try {
			classificacao = (ClassificacaoEtaria) em.find(
					ClassificacaoEtaria.class, id);
		} catch (Exception e) {
			System.err.println(e.getMessage());
		} finally {
			em.close();
		}
		em.close();
		return classificacao;
	}

	@Override
	public ClassificacaoEtaria consultarClassificacaoEtariaIntPorNome(
			String nome) {
		// TODO Auto-generated method stub
		return null;
	}

}
